3.6.9.6 gmfma-疑似単精度行列ベクトル積和演算の基本動作
あらかじめ行列レジスタに書かれた行列データをAとして 8 次元の疑似単精度行列ベクトル積FMA (Ax+y)を行う。
code:文法
gmfma $l(x|y) <src_x> <src_y> <dst_0> <dst_1>..
第 1 入力の$l(x|y)は読み出し元の行列レジスタであり、以下効果においてsideとして参照する。
第 2 入力の<src_x>および第 3 入力の<src_y>は読み出し元PEオペランドである。<src_x>はブロックフロート疑似単精度の値でアクセス語長は長語である。基本動作において<src_y>は通常の単精度の値で、アク
セス語長は長語である。
<dst_0> [<dst_1>..]は書き込み先PEオペランドである。演算結果は複数のPEメモリに同時に書き込
むことができるが、以下効果では簡単のため単一の書き込み先としてdstを指定した例を示している。基本動
作において演算結果は通常の単精度であり、書き込みのアクセス語長は長語である。
code:効果.py
for cycle= 0:4
forall chip,l2b,l1b,mab
ShortWord src_data_A88 =MEMchipl2bl1bmab.refer_matreg(side, ShortWord)
ShortWord src_data_x42 =MEMchipl2bl1bmab0:4.refer_pemem(src_x, cycle)
ShortWord src_data_y42 =MEMchipl2bl1bmab0:4.refer_pemem(src_y, cycle)
ShortWord dst_data8 = {0, 0, 0, 0, 0, 0, 0, 0}
for i= 0:8
for j = 0:8
dst_datai +=src_data_Aij *src_data_xj/2j%2
dst_datai +=src_data_yi/2i%2
forall pe
MEMchipl2bl1bmabpe.refer_pemem(dst,cycle) =dst_datape*2:(pe+1)*2